// Attribute.h: interface for the Attribute class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_ATTRIBUTE_H__224B8DF0_03AE_45BF_ACDD_87E20A2FB815__INCLUDED_)
#define AFX_ATTRIBUTE_H__224B8DF0_03AE_45BF_ACDD_87E20A2FB815__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000



// Type of entities with attribute
//////////////////////////////////////////////////////////////////////
enum
{
  NODE,
  CURVE,
  FACE
};

enum
{
  ConcentLoad,
  ConstDistLoad,
  LinearDistLoad,
  NodalSupport,
  IsotropMaterial,
  ViDaMaterial,
  Thickness
};

//  class Attribute
//////////////////////////////////////////////////////////////////////
class Attribute  
{
 char       EntityType[20];
 void       *EntityPtr;

 // If the entity needs one more attribute
 char       EntityType1[20];
 void       *EntityPtr1;

 // Arguments
 int        NumArg;
 double     *Args;
       
 public:
            Attribute ( );
 virtual   ~Attribute ( );

 int        Apply     (char *enttype, void *ptr, int num, double *args);
 int        Get       (char *enttype, void *ptr, int num, double *args);
 int        Delete    ( );

};

#endif // !defined(AFX_ATTRIBUTE_H__224B8DF0_03AE_45BF_ACDD_87E20A2FB815__INCLUDED_)
